package cn.buk.tms.eotms.service;

import cn.buk.common.JsonResult;
import cn.buk.common.sc.CommonSearchCriteria;
import cn.buk.tms.eotms.dto.AttractionInfoDto;
import cn.buk.tms.eotms.dto.AttractionPriceDto;
import cn.buk.tms.eotms.dto.TicketOrderRequestDto;
import cn.buk.tms.eotms.dto.TicketOrderResponseDto;
import cn.buk.tms.eotms.sc.SearchFlightOrderCriteria;

import java.util.Date;
import java.util.List;

/**
 * 景点
 * @author yfdai
 */
public interface AttractionService {

    AttractionInfoDto getAttractionInfoById(int userId, int id);

    List<AttractionInfoDto> searchAttractions(int userId, CommonSearchCriteria sc);

    /**
     * 查找景点价格
     * @param userId
     * @param attractionId
     * @return
     */
    List<AttractionPriceDto> searchAttractionPrice(int userId, int attractionId, CommonSearchCriteria sc);

  /**
   * 创建门票订单
   * @param userId
   * @param dto
   * @return
   */
  JsonResult createAttractionTicketOrder(int userId, TicketOrderRequestDto dto);

  List<TicketOrderResponseDto> searchTicketOrders(int userId, SearchFlightOrderCriteria sc);

  TicketOrderResponseDto getTicketOrder(int userId, int orderId);

  /**
   * 取消门票订单
   * @param userId
   * @param orderId
   * @param remark
   * @return
   */
  JsonResult cancelTicketOrder(int userId, int orderId, String remark);

  /**
   * 为门票订单付款
   * @param userId
   * @param orderId
   * @return
   */
  JsonResult payTicketOrder(int userId, int orderId);

  /**
   * EXCEL导入生成订单
   * @param userId
   * @param filePath
   * @return
   */
  JsonResult importTicketOrderByExcel(int userId, String filePath);
}
